home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 09 Application Software / SOFTIN.BIN (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  6KB  |  373 lines

  1. 50 PRINTCHR$(147)
  2. 60 POKE 53280,0:POKE 53281,0
  3. 100 PRINT"     ****************************"
  4. 110 PRINT"     ***  SOFTWARE INVENTORY  ***"
  5. 120 PRINT"     ***        PROGRAM       ***"
  6. 130 PRINT"     ***                      ***"
  7. 140 PRINT"     *** DESIGNED AND WRITTEN ***"
  8. 150 PRINT"     ***   BY: DAVID HAILEY   ***"
  9. 160 PRINT"     ****************************"
  10. 164 PRINT"PRESS ANY KEY TO BEGIN"
  11. 165 GET A$:IF A$="" THEN 165
  12. 170 :
  13. 180 REM ****************************
  14. 190 REM * DATA FOR SUBJECT MENU    *
  15. 200 REM ****************************
  16. 210 :
  17. 220 DATA"ADVENTURE GAMES","ARCADE GAMES","BUSINESS SOFTWARE"
  18. 230 DATA"COMPUTER ART SOFTWARE","EDUCATIONAL SOFTWARE","MUSIC SOFTWARE"
  19. 240 DATA"ROLL-PLAYING GAMES","STRATEGIE GAMES","SPORTS SOFTWARE"
  20. 250 DATA"UTILITY SOFTWARE","MISCELLANEOUS SOFTWARE","EXIT PROGRAM"
  21. 260 :
  22. 270 REM ****************************
  23. 280 REM * PROCESSING               *
  24. 290 REM ****************************
  25. 300 :
  26. 310 DIM S$(12),SOFT$(200),D$(200),I(200)
  27. 320 RESTORE
  28. 325 LET SM=12
  29. 330 :
  30. 340 FOR X=1 TO SM
  31. 350 READ S$(X)
  32. 360 NEXT X
  33. 370 :
  34. 380 POKE 53281,0:POKE 53280,0
  35. 390 PRINTCHR$(147);"[153]":LET C=0
  36. 400 PRINT TAB(7)"SUBJECT MENU"
  37. 405 PRINT TAB(6)"[183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
  38. 410 PRINT:PRINT
  39. 420 :
  40. 430 FOR X=1 TO SM
  41. 440 IF X=10 THEN 480
  42. 441 IF X=11 THEN 480
  43. 445 IF X=12 THEN 495
  44. 450 PRINT " ";X;"[157]. ";S$(X)
  45. 460 GOTO 510
  46. 470 :
  47. 480 PRINT X;"[157]. ";S$(X)
  48. 490 GOTO 510
  49. 494 :
  50. 495 PRINT:PRINT X;"[157]. ";S$(X)
  51. 496 GOTO 510
  52. 500 :
  53. 510 NEXT X
  54. 520 :
  55. 530 PRINT:PRINT
  56. 540 INPUT"ENTER NUMBER OF CHOICE: ";C
  57. 541 IF C<1 OR C>SM THEN 390
  58. 545 IF C=SM THEN 10000
  59. 550 LET F=C+4
  60. 560 :
  61. 570 FOR H=1 TO 50:NEXT H
  62. 580 :
  63. 590 PRINTCHR$(147)
  64. 594 :
  65. 595 GOSUB 8000
  66. 596 :
  67. 600 PRINT"";S$(C);"[146]"
  68. 610 PRINT:PRINT:PRINT
  69. 620 PRINT"OPTIONS"
  70. 630 PRINT"[183][183][183][183][183][183][183]"
  71. 640 PRINT
  72. 650 PRINT"A[146]DD ENTRIES"
  73. 660 PRINT"D[146]ELETE ENTRIES"
  74. 670 PRINT"L[146]IST ENTRIES"
  75. 680 PRINT"S[146]ORT ENTRIES"
  76. 690 PRINT"P[146]RINT ENTRIES"
  77. 700 PRINT
  78. 710 PRINT"R[146]ETURN TO SUBJECT MENU"
  79. 720 PRINT:PRINT
  80. 730 PRINT"ENTER FIRST LETTER OF OPTION"
  81. 740 GET A$:IF A$="" THEN 740
  82. 750 :
  83. 751 IF C=3 THEN LET S$(3)="BUSINESS"
  84. 752 IF C=4 THEN LET S$(4)="COMPUTER ART"
  85. 753 IF C=5 THEN LET S$(5)="EDUCATIONAL"
  86. 754 IF C=7 THEN LET S$(7)="ROLL-PLAYING"
  87. 755 IF C=11 THEN LET S$(11)="MISCELLANEOUS"
  88. 756 :
  89. 760 IF A$="A" THEN 1000
  90. 770 IF A$="D" THEN 2000
  91. 780 IF A$="L" THEN 3000
  92. 790 IF A$="S" THEN 4000
  93. 800 IF A$="P" THEN 5000
  94. 810 IF A$="R" THEN 320
  95. 820 :
  96. 830 GOTO 590
  97. 1000 :
  98. 1010 REM ****************************
  99. 1020 REM * ADD ENTRIES              *
  100. 1030 REM ****************************
  101. 1040 :
  102. 1050 PRINTCHR$(147):LET E=0
  103. 1060 INPUT"HOW MANY ENTRIES: ";N
  104. 1070 IF N=0 THEN GOTO 590
  105. 1080 :
  106. 1090 OPEN F,8,2,"0:"+S$(C)+",S,R"
  107. 1100 :
  108. 1110 INPUT#F,E
  109. 1120 :
  110. 1130 FOR X=1 TO E
  111. 1140 INPUT#F,SOFT$(X)
  112. 1150 NEXT X
  113. 1160 :
  114. 1170 CLOSE F
  115. 1180 :
  116. 1185 PRINT
  117. 1190 FOR Z=(E+1) TO (E+N)
  118. 1200 PRINT"ENTRY #";Z;": ";
  119. 1210 INPUT SOFT$(Z)
  120. 1220 NEXT Z
  121. 1230 :
  122. 1240 PRINTCHR$(147):PRINT"ENTRIES:"
  123. 1250 PRINT"[183][183][183][183][183][183][183]"
  124. 1260 :
  125. 1270 FOR Z=(E+1) TO (E+N)
  126. 1280 PRINT SOFT$(Z)
  127. 1290 NEXT Z
  128. 1300 :
  129. 1310 PRINT:PRINT"ARE THESE CORRECT?  [Y/N]"
  130. 1320 GET A$:IF A$="" THEN 1320
  131. 1330 IF A$="Y" THEN 1360
  132. 1340 GOTO 590
  133. 1350 :
  134. 1360 LET E=E+N
  135. 1361 PRINTCHR$(147);TAB(7)"***** ADDING ENTRIES *****"
  136. 1370 :
  137. 1380 OPEN F,8,2,"@0:"+S$(C)+",S,W"
  138. 1390 :
  139. 1400 PRINT#F,E
  140. 1410 :
  141. 1420 FOR X=1 TO E
  142. 1430 PRINT#F,SOFT$(X)
  143. 1440 NEXT X
  144. 1450 :
  145. 1460 CLOSE F
  146. 1470 :
  147. 1480 GOTO 590
  148. 2000 :
  149. 2010 REM ****************************
  150. 2020 REM * DELETE ENTRIES           *
  151. 2030 REM ****************************
  152. 2040 :
  153. 2050 PRINTCHR$(147):LET E=0
  154. 2060 INPUT"ENTER NUMBER OF ENTRY TO DELETE:";D
  155. 2070 :
  156. 2080 IF D=0 THEN GOTO 590
  157. 2090 :
  158. 2100 OPEN F,8,2,"0:"+S$(C)+",S,R"
  159. 2110 INPUT#F,E
  160. 2120 :
  161. 2130 FOR X=1 TO E
  162. 2140 INPUT#F,SOFT$(X)
  163. 2150 NEXT X
  164. 2160 :
  165. 2170 CLOSE F
  166. 2180 :
  167. 2190 LET SOFT$(D)=""
  168. 2191 :
  169. 2192 FOR X=(D+1) TO E
  170. 2193 LET SOFT$(X-1)=SOFT$(X)
  171. 2194 NEXT X
  172. 2195 :
  173. 2196 LET SOFT$(E)=""
  174. 2200 LET E=E-1
  175. 2210 :
  176. 2220 OPEN F,8,2,"@0:"+S$(C)+",S,W"
  177. 2230 PRINT#F,E
  178. 2240 :
  179. 2250 FOR X=1 TO E
  180. 2260 PRINT#F,SOFT$(X)
  181. 2270 NEXT X
  182. 2280 :
  183. 2290 CLOSE F
  184. 2300 :
  185. 2310 GOTO 590
  186. 3000 :
  187. 3010 REM ****************************
  188. 3020 REM * LIST ENTRIES             *
  189. 3030 REM ****************************
  190. 3040 :
  191. 3050 PRINTCHR$(147):LET M=15:LET E=0
  192. 3054 :
  193. 3055 GOSUB 8000
  194. 3056 :
  195. 3060 PRINT"";S$(C);"[146]"
  196. 3070 PRINT:PRINT
  197. 3080 :
  198. 3084 :
  199. 3085 GOSUB 9000
  200. 3086 :
  201. 3090 OPEN F,8,2,"0:"+S$(C)+",S,R"
  202. 3100 INPUT#F,E
  203. 3105 IF E=0 THEN 3340
  204. 3110 :
  205. 3120 FOR X=1 TO E
  206. 3130 INPUT#F,SOFT$(X)
  207. 3140 NEXT X
  208. 3150 :
  209. 3160 CLOSE F
  210. 3170 :
  211. 3180 FOR X=1 TO E
  212. 3181 IF X>9 THEN 3190
  213. 3182 PRINT " ";X;"[157]. ";SOFT$(X)
  214. 3183 GOTO 3200
  215. 3190 PRINT X;"[157]. ";SOFT$(X)
  216. 3200 IF X=E THEN 3340
  217. 3210 IF X=M THEN GOSUB 3260
  218. 3220 NEXT X
  219. 3230 :
  220. 3240 GOTO 3350
  221. 3250 :
  222. 3260 LET M=M+15
  223. 3270 PRINT:PRINT"CONTINUE - PRESS ANY KEY"
  224. 3280 GET A$:IF A$="" THEN 3280
  225. 3290 PRINTCHR$(147)
  226. 3300 PRINT"";S$(C);"[146]"
  227. 3310 PRINT:PRINT
  228. 3320 RETURN
  229. 3330 :
  230. 3340 PRINT:PRINT"END OF LISTING"
  231. 3350 PRINT:PRINT"PRESS ANY KEY TO RETURN TO MENU"
  232. 3360 GET A$:IF A$="" THEN 3360
  233. 3365 CLOSE F
  234. 3370 GOTO 590
  235. 4000 :
  236. 4010 REM ****************************
  237. 4020 REM * SORT ENTRIES             *
  238. 4030 REM ****************************
  239. 4040 :
  240. 4050 PRINT CHR$(147):LET E=0
  241. 4060 :
  242. 4070 OPEN F,8,2,"0:"+S$(C)+",S,R"
  243. 4080 INPUT#F,E
  244. 4090 :
  245. 4100 FOR X=1 TO E
  246. 4110 INPUT#F,SOFT$(X)
  247. 4120 LET D$(X)=SOFT$(X)
  248. 4130 NEXT X
  249. 4140 :
  250. 4150 CLOSE F
  251. 4160 :
  252. 4170 GOSUB 4500
  253. 4180 :
  254. 4190 OPEN F,8,2,"@0:"+S$(C)+",S,W"
  255. 4200 PRINT#F,E
  256. 4210 :
  257. 4220 FOR X=1 TO E
  258. 4230 PRINT#F,SOFT$(I(X))
  259. 4240 NEXT X
  260. 4250 :
  261. 4260 CLOSE F
  262. 4270 :
  263. 4280 GOTO 590
  264. 4500 :
  265. 4510 REM ****************************
  266. 4520 REM * SORT MODULE              *
  267. 4530 REM ****************************
  268. 4540 :
  269. 4550 PRINTCHR$(147)
  270. 4560 PRINTTAB(7)"***** SORTING ENTRIES *****"
  271. 4570 :
  272. 4580 FOR X=1 TO E
  273. 4590 LET I(X)=X
  274. 4600 NEXT X
  275. 4610 :
  276. 4620 LET M=E-1
  277. 4630 LET T3=0
  278. 4640 :
  279. 4650 IF T3=1 THEN 4880
  280. 4660 LET S2=1
  281. 4670 LET T3=1
  282. 4680 :
  283. 4690 IF S2>M THEN 4850
  284. 4700 IF D$(S2)>D$(S2+1) THEN 4730
  285. 4710 GOTO 4820
  286. 4720 :
  287. 4730 LET H=I(S2)
  288. 4740 LET I(S2)=I(S2+1)
  289. 4750 LET I(S2+1)=H
  290. 4760 LET H$=D$(S2)
  291. 4770 LET D$(S2)=D$(S2+1)
  292. 4780 LET D$(S2+1)=H$
  293. 4790 LET T3=S2
  294. 4800 GOTO 4820
  295. 4810 :
  296. 4820 LET S2=S2+1
  297. 4830 GOTO 4690
  298. 4840 :
  299. 4850 LET M=T3-1
  300. 4860 GOTO 4650
  301. 4870 :
  302. 4880 RETURN
  303. 5000 :
  304. 5010 REM ****************************
  305. 5020 REM * PRINT ENTRIES            *
  306. 5030 REM ****************************
  307. 5040 :
  308. 5050 PRINTCHR$(147):LET E=0
  309. 5054 :
  310. 5055 GOSUB 8000
  311. 5056 :
  312. 5060 PRINT"";S$(C);"[146]"
  313. 5070 PRINT:PRINT
  314. 5080 PRINT"PREPARE PRINTER AND PRESS P[146] TO PRINT"
  315. 5081 GET A$:IF A$="" THEN 5081
  316. 5082 IF A$<>"P" THEN 590
  317. 5090 :
  318. 5094 :
  319. 5095 GOSUB 9000
  320. 5096 :
  321. 5100 OPEN F,8,2,"0:"+S$(C)+",S,R"
  322. 5110 INPUT#F,E
  323. 5120 :
  324. 5130 FOR X=1 TO E
  325. 5140 INPUT#F,SOFT$(X)
  326. 5150 NEXT X
  327. 5160 :
  328. 5170 CLOSE F
  329. 5180 :
  330. 5185 PRINT:PRINT:PRINT:PRINT"PRINTING...."
  331. 5190 OPEN4,4
  332. 5194 :
  333. 5195 GOSUB 8000
  334. 5196 :
  335. 5200 PRINT#4,"***** ";S$(C);" *****"
  336. 5210 PRINT#4
  337. 5220 PRINT#4
  338. 5225 :
  339. 5230 FOR X=1 TO E
  340. 5240 PRINT#4,STR$(X);". ";SOFT$(X)
  341. 5250 NEXT X
  342. 5260 :
  343. 5270 PRINT#4
  344. 5280 PRINT#4
  345. 5290 PRINT#4,"***** END OF LISTING *****"
  346. 5291 PRINT#4:PRINT#4:PRINT#4:PRINT#4:PRINT#4:PRINT#4
  347. 5300 :
  348. 5310 CLOSE 4
  349. 5320 :
  350. 5330 GOTO 590
  351. 8000 :
  352. 8010 IF C=3 THEN LET S$(3)="BUSINESS SOFTWARE"
  353. 8020 IF C=4 THEN LET S$(4)="COMPUTER ART SOFTWARE"
  354. 8030 IF C=5 THEN LET S$(5)="EDUCATIONAL SOFTWARE"
  355. 8040 IF C=7 THEN LET S$(7)="ROLL-PLAYING GAMES"
  356. 8050 IF C=11 THEN LET S$(11)="MISCELLANEOUS SOFTWARE"
  357. 8060 :
  358. 8070 RETURN
  359. 8080 :
  360. 9000 :
  361. 9010 IF C=3 THEN LET S$(3)="BUSINESS"
  362. 9020 IF C=4 THEN LET S$(4)="COMPUTER ART"
  363. 9030 IF C=5 THEN LET S$(5)="EDUCATIONAL"
  364. 9040 IF C=7 THEN LET S$(7)="ROLL-PLAYING"
  365. 9050 IF C=11 THEN LET S$(11)="MISCELLANEOUS"
  366. 9060 :
  367. 9070 RETURN
  368. 9080 :
  369. 10000 :
  370. 10010 PRINTCHR$(147)
  371. 10020 PRINT"PROGRAM TERMINATED BY OPERATOR"
  372. 10030 END
  373.